package com.yiwenup.leetcode.offer;

/**
 * https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/
 **/
public class No058_ii {
    /**
     * 执行用时：0 ms, 在所有 Java 提交中击败了100.00%的用户
     * 内存消耗：38.2 MB, 在所有 Java 提交中击败了57.65%的用户
     */
    public String reverseLeftWords(String s, int n) {
        StringBuilder sb = new StringBuilder();
        sb.append(s, n, s.length());
        sb.append(s, 0, n);
        return sb.toString();
    }

    /**
     * 执行用时：3 ms, 在所有 Java 提交中击败了37.98%的用户
     * 内存消耗：38.5 MB, 在所有 Java 提交中击败了9.72%的用户
     */
    public String reverseLeftWords2(String s, int n) {
        StringBuilder sb = new StringBuilder();
        int length = s.length();
        for (int i = n; i < length; i++) {
            sb.append(s.charAt(i));
        }
        for (int i = 0; i < n; i++) {
            sb.append(s.charAt(i));
        }
        return sb.toString();
    }

    /**
     * 执行用时：3 ms, 在所有 Java 提交中击败了37.98%的用户
     * 内存消耗：38.3 MB, 在所有 Java 提交中击败了37.56%的用户
     */
    public String reverseLeftWords3(String s, int n) {
        StringBuilder sb = new StringBuilder();
        int length = s.length();
        for (int i = n; i < length + n; i++) {
            sb.append(s.charAt(i % length));
        }
        return sb.toString();
    }
}
